In many computing environments, virtual machines (VMs) are used to implement services and applications. In many cases multiple virtual machines are used to implement a single application, for example when the application is configured to balance a workload over multiple virtual machines, and/or when the application is configured into a single master and multiple slave regimes. Virtual machine hypervisors can sometimes be employed to access storage devices (e.g., real storage devices or areas, or virtual storage devices) so as to assist in the implementation of a disaster recovery plan.
Unfortunately, virtual machine hypervisors do not provide methods to take application-consistent snapshots when multiple VMs are used to implement a single application. This situation gives rise to the potential for extremely deleterious effects, such as in cases when two or more virtual machines involved in a single application share some data space (e.g., a shared data structure). Unless all reader/writer virtual machines in the application are in an application-wide consistent state, a snapshotted data structure can be in a state of corruption at the time the snapshot is taken. This can have the effect that a computing environment that is restored from a corrupted snapshot might not function as intended, or might not function at all, or even might cause damage to data. Disaster recovery plans need is a way to bring a group of multiple virtual machines into a consistent state before taking snapshots of the storage devices that are used by an application.
What is needed is a technique or techniques to improve over legacy and/or over other considered approaches. Some of the approaches described in this background section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.